home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
nte
/
nte.plp
< prev
Wrap
Text File
|
1994-11-16
|
25KB
|
609 lines
/****************************************************************************/
/* */
/* NIFTY用手抜きセミオートパイロット Ntenuki */
/* */
/* Copyright (c) E.Suto, 1994 */
/****************************************************************************/
/* V0.00 1994年 2月吉日 試作版 */
/* V0.01 1994年 3月10日 公開版 */
/* V0.02 1994年 3月14日 終了時常時切断に */
/* V0.03 1994年 6月23日 バイナリメールに対応 */
/* V0.04 1994年 8月17日 ROAD4に対応(^^; */
/* ======================================================================== */
/* =============================== 引数宣言 =============================== */
[root,forum,room,week] /* 引数 */
/* root : 処理名(関数名) */
/* forum : FORUM名(FORUM) */
/* HP-ID(HP) */
/* PATIO-ID(PATIO) */
/* コマンド(COMMAND) */
/* room : 会議室番号(FORUM,MREAD) */
/* パスワード(HP,PATIO) */
/* week : 巡回曜日 */
/* =============================== 変数宣言 =============================== */
var errcode[128] ; /* エラー原因名 */
var yn[5] ; /* Yes/No判定用 */
%Time99 {99999} ; /* 長時間待ち(^^; */
/* =============================== 環境設定 =============================== */
%Init {
/* MopTermの環境設定 */
stopbit( {1} ) ; /* ストップビット */
parity( {None} ) ; /* パリティ */
lineend( {CR} ) ; /* 送信時の行端 */
lineendt( {CR} ) ; /* 受信時の行端 */
flyingx( {No} ) ; /* フライングX */
dataleng( {8bit} ) ; /* 文字長 */
flyline( {3} ) ; /* 先送り行数を定して下さい */
code( {sjis} ) ; /* 使用するコード */
click( {No} ) ; /* キークリックの設定(T-OS) */
logprint( {No} ) ; /* ログ印刷の設定(T-OS) */
nattou( {Yes} ) ; /* 納豆スクロールの設定(T-OS) */
sendtype( {Ch/2} ) ; /* 文字単位の設定 */
doschar( {%} ) ; /* DOSコマンドの識別子 */
pilotch( {$} ) ; /* オートパイロットの識別子 */
ctrl( {No} ) ; /* CTRLコードの通過設定 */
esc( {No} ) ; /* ESCシーケンスの通過設定 */
dispecho( {Yes} ) ; /* エコーバック表示の設定 */
crmode( {No} ) ; /* 改行処理の設定 */
tab( {8} ) ; /* TAB設定 */
retmark( {Yes} ) ; /* 改行/EOFの表示設定 */
naptype( {Nifty} ); /* NAPLPSタイプ設定 */
chat( {Yes} ) ; /* オートパイロット中の入力許可 */
} ;
/* =============================== 終了処理 =============================== */
%End{
discon ; /* 回線切断 */
display( {「} | errcode | {」\n} ) ; /* エラーメッセージ表示 */
display( {「オートパイロットを終了します。」\n} ) ;
case( root,{CONNECT},,,{Logstop} ) ; /* LOG採取終了 */
case( @laststr(2),{>},{Logstop} ) ; /* LOG採取終了 */
case( @laststr(1),{>},{Logstop} ) ; /* LOG採取終了 */
stop ; /* 終了 */
} ;
/* ========================== LOG採取終了処理 ========================== */
%Logstop{
stoprec ; /* LOG採取終了 */
stop ; /* 終了 */
} ;
/* ================================ YES ================================ */
%TRUE{
yn := {Yes} ; /* Yes設定(繰り返し) */
} ;
/* ================================= NO ================================= */
%FALSE{
yn := {No} ; /* No設定(繰り返さない) */
} ;
/* ============================ 発呼初期化処理 ============================ */
%Dial{
var dialret[5] ; /* ダイアルリトライ回数 */
dialret := {0} ; /* リトライ回数0 */
wait( {2},) ; /* ちょっと待つ(^^; */
Dialsend ;
} ;
/* =============================== 発呼処理 =============================== */
%Dialsend{
var dialcomm[100] ; /* ダイアル用バッファ */
dialcomm := Atcomm | @tail(Telno,{AT}) ; /* ダイアルデータ作成 */
loop({ /* 接続されまるまでくり返し */
dialone( dialcomm , {FALSE} , {TRUE} ) ; /* 発呼 */
errcode := {発呼に失敗しました(;_;)。} ;/* エラーセット */
case( yn,{Yes},{Redial} ) ; /* リダイアルか? */
im( yn ) ; } ) ; /* Noになるまでくり返し */
} ;
/* ============================ リダイアル処理 ============================ */
%Redial{
dialret := dialret + {1} ; /* リダイアル回数++ */
errcode := {ダイアルリトライオーバーです(;_;)} ; /*エラーセット */
case( dialret,Maxtry,{End} ) ; /* リトライオーバーか? */
wait( Trywait, ) ; /* リダイアル待機 */
} ;
/* =============================== 接続処理 =============================== */
%Roadcon{
errcode := {回線が異常です(;_;)} ;/* エラーコードセット */
case( Road,{1},{Road1}, /* ROAD1接続 */
{2},{Road2}, /* ROAD2接続 */
{3},{Road3}, /* ROAD3接続 */
{4},{Road3} ) ; /* ROAD4接続 */
sendtype( {Line} ) ; /* 送信単位の設定 */
type( {SVC\n} ) ; /* SVC送信 */
wait( {30},{End}, /* タイムアウトなら終了 */
{Enter User-ID --->}, ) ; /* ユーザーID待ち */
case( Userid,{},,,{ /* ユーザーID設定有りか? */
type( Userid | {\n} ) } ) ; /* ユーザーID送信 */
wait( {30},{End}, /* タイムアウトなら終了 */
{Enter Password --->},) ; /* パスワード待ち */
case( Password,{},{Inpass},,{ /* パスワード設定有りか? */
type( Password | {\n} ) } ) ; /* パスワード送信 */
TRUE ; /* ループ設定 */
loop( { /* 繰り返し */
wait( Time99,{End},{Password --->},{Inpass},/* 入力ミス */
{前回LOG OUT},{FALSE} ) ;/* LOGIN完了 */
im( yn ) ; } ) ; /* LOGIN出来るまで繰り返し */
} ;
/* ============================ パスワード入力 ============================ */
%Inpass{
sendtype( {Ch/2} ) ; /* 文字単位の設定 */
wait( Time99,{End},{\n}, ) ; /* 改行待ち */
} ;
/* ============================== ROAD1 ============================== */
%Road1{
wait( {2},) ; /* ちょっと待つ */
type( {.00+} ); /* .00+送信 */
wait( {30},{End},{.00+} ) ; /* .00+エコーバック待ち */
wait( {30},{Road1}, /* タイムアウトなら.00+ */
{+},{Road1}, /* xx+なら.00+ */
{Enter Connection-ID --->}, ) ;/* 接続完了 */
} ;
/* ============================== ROAD2 ============================== */
%Road2{
wait( {2},) ; /* ちょっと待つ */
type( {@P\n} ) ;
wait( {10},{Road2},{*} ) ; /* タイムアウトなら@P */
type( {C NIF\n} ) ; /* C NIF送信 */
wait( {30},{End}, /* タイムアウトなら終了 */
{Enter Connection-ID --->}, ) ;/* 接続完了 */
} ;
/* ============================ ROAD3/4 ============================ */
%Road3{
wait( {30},{End},{*} ) ; /* タイムアウトなら終了 */
type( {C NIF\n} ) ; /* C NIF送信 */
wait( {30},{End}, /* タイムアウトなら終了 */
{Enter Connection-ID --->}, ) ;/* 接続完了 */
} ;
/* ========================= MAIL受信チェック ========================= */
%Mailchk{
errcode := {HOSTが異常です(;_;)} ;/* エラーコードセット */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{通)--},{Mailwait}, /* MAIL待ち処理へ */
{\n>}, ) ; /* MAIL無し */
} ;
/* ============================= MAIL待ち ============================= */
%Mailwait{
wait( {PRtimer},{End},{\n>}, ) ;/* タイムアウトなら終了 */
Mailin ; /* MAIL受信へ */
} ;
/* =========================== MAIL受信処理 =========================== */
%Mailin{
var bmailbox[152] ; /* バイナリMAILの情報格納用 */
type( {go mail\n} ) ; /* MAILへ */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\n>},{Menuoff}, /* エキスパートモードへ */
{\nMAIL>}, ) ; /* MAILモード */
type( {set page off\n} ) ; /* ページ制御抑止 */
wait( {PRtimer},{End},{\nMAIL>}, ) ;/* タイムアウトなら終了 */
type( {read new\n} ) ; /* MAIL読込 */
wait( Time99,{End},{action:},{Mailloop}, /* MAIL有り */
{はバイナリーのため},{Bmail}, /* バイナリMAIL有り */
/* バイナリMAILモード */
{NAPLPSのデコーダーが必要です。準備 (1:OK 2:NG) \n:},
{Nmail}, /* NAPLPSMAILモード */
{\nMAIL>}, ) ; /* MAIL終わり */
case( @nochar(bmailbox),{0},, /* バイナリメール有りか? */
,{Bdown} ) ; /* 有りの場合ダウンロードへ */
type( {set page on\n} ) ; /* ページ制御戻し */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\nMAIL>}, ) ; /* MAILモード */
} ;
/* =========================== MAIL受信処理 =========================== */
%Mailloop{
loop( { /* くり返し */
type( {2\n} ) ; /* 取り合えずセーブ */
wait( Time99,{End},{action:},{TRUE}, /* 繰り返し */
{はバイナリーのため},{Bmail}, /* バイナリMAIL */
/* バイナリMAILモード */
{NAPLPSのデコーダーが必要です。準備 (1:OK 2:NG) \n:},
{Nmail},/* NAPLPSMAILモード */
{\nMAIL>},{FALSE}) ;/* MAIL終了 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ===================== NAPLPSMAIL受信処理 ===================== */
%Nmail{
type( { 1\n } ) ; /* NAPLPS受信 */
wait( {1},) ; /* ちょっと待つ */
type( { \n } ) ; /* 空エンター */
wait( Time99,{End},{action:},); /* 表示終了待ち */
napend ; /* 文字モードへ */
{Mailloop} ; /* MAILループへ */
} ;
/* ===================== バイナリMAIL番号受信処理 ===================== */
%Bmail{
bmailbox := bmailbox | {,} /* バイナリメール番号格納 */
| @tail(@laststr(40),{◆番号},{はバイナリーのため}) ;
wait( Time99,{End},{action:},{Mailloop}, /* 繰り返し */
{はバイナリーのため},{Bmail}, /* バイナリMAIL */
/* バイナリMAILモード */
{NAPLPSのデコーダーが必要です。準備 (1:OK 2:NG) \n:},
{Nmail}, /* NAPLPSMAILモード */
{\nMAIL>},{FALSE}) ; /* MAIL終了 */
} ;
/* ======================= バイナリMAIL受信処理 ======================= */
%Bdown{
var downname[128] ; /* ダウンロードファイル名 */
var blogday[4] ; /* ファイル名に埋め込む月日 */
var downnum[3] ; /* ダウンロードメール番号 */
case( @nochar(@day),{4},{blogday := @day;},/* 4文字の場合はそのまま*/
{3},{blogday := {0}|@day ;} ) ; /* 3文字の場合0を追加 */
type( {down\n} ) ; /* メール一覧表示 */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\n>}, ) ; /* ダウンロードモード */
type( {e\n} ) ; /* メールモードヘ戻る */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\nMAIL>}, ) ; /* MAILモード */
loop( { /* くり返し */
downnum := @tail( bmailbox,{,} ) ; /* メール番号切り出し */
type( {down } | downnum | { PROT:BPL\n} ) ; /* ダウンロード */
wait( {PRtimer},{End},{\n:}, ) ;/* タイムアウトなら終了 */
Bname ; /* 受信ファイル名作成 */
type( downname | {\n} ) ; /* ファイル名送信 */
wait( Time99,{End},{\n:}, ) ; /* タイムアウトなら終了 */
type( {2\n} ) ; /* 取り合えずセーブ */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\nMAIL>}, ) ; /* MAILモード */
downnum := {,} | downnum ; /* ,を付ける */
bmailbox := @head( bmailbox,downnum ) ; /* 次のメールへ */
case( @nochar(bmailbox),{0},{FALSE},/*バイナリメール有りか?*/
,{TRUE} ) ; /* 有りの場合ダウンロードへ */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ================== バイナリMAILファイル名作成処理 ================== */
%Bname{
var bnames[27];
var number[1];
bnames:={abcdefghijklmnopqrstuvwxyz} ; /* 拡張子ベース初期設定 */
number:={0} ; /* ループ初期値 */
loop( { /* くり返し */
number := number + {1}; /* 文字位置更新 */
downname := Rcvdir | /* 受信ディレクトリ */
Logname | /* LOG名 */
blogday | /* 月日 */
{.} | /* 区切り */
@getchar( bnames,number,{1} ) | /* 拡張子ベース */
downnum ; /* メール番号 */
case( @filechk( downname ), /* 既に有るか? */
{Yes},{TRUE}, /* 有り */
{No},{FALSE} ) ;/* 無し */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ============================ FORUM移動 ============================ */
%FMread{
type( {go } | forum | {\n} ) ; /* 指定FORUMへ移動 */
FPwait ; /* プロンプト待ち */
type( {mes\n} ); /* 会議室移動 */
wait( {PRtimer},{End},{\n>}, ) ;/* タイムアウトなら終了 */
Mre ; /* MREAD */
} ;
/* ======================= FORUMプロンプト待ち ======================= */
%FPwait{
loop( { /* くり返し */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{E:終了},{Chgmode}, /* MENU OFFへ */
{\nmore},{More}, /* 継続処理へ */
{\n続き (改行で},{More},/* 継続処理へ */
{\nFORUM>},{FALSE}) ; /* プロンプト受信 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ============================ PATIO移動 ============================ */
%PMread{
type( {go patio\n} ) ; /* PATIOへ移動 */
wait( {PRtimer},{End},{\n>}, ) ;/* タイムアウトなら終了 */
type( {2\n} ) ; /* サービスに入る */
wait( {PRtimer},{End},{\n:}, ) ;/* タイムアウトなら終了 */
case( forum,{},,,{ /* PATIO-ID設定有りか? */
type( forum | {\n} ) } ) ; /* PATIO-ID送信 */
wait( {PRtimer},{End},{\n:}, ) ;/* タイムアウトなら終了 */
case( room,{},{Inpass},,{ /* PATIO-PASSWORD設定有りか? */
type( room | {\n} ) } ) ; /* PATIO-PASSWORD送信 */
PPwait ; /* プロンプト待ち */
type( {mre\n} ) ; /* MREAD発行 */
Mcheck ; /* MREAD */
} ;
/* ======================= PATIOプロンプト待ち ======================= */
%PPwait{
loop( { /* くり返し */
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\nmore},{More}, /* 継続処理へ */
{\n続き (改行で},{More},/* 継続処理へ */
{\n>} ,{FALSE}) ; /* プロンプト受信 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* =============================== HP準備 =============================== */
%HPset{
case( @laststr(3),{HP>},{HPmove},,{HPgo} ) ; /* HPならMOVEそれ以外GO*/
} ;
/* =========================== HP移動(連続) =========================== */
%HPmove{
type( {move\n} ) ; /* HP間移動 */
HPread ; /* HP読込処理へ */
} ;
/* =========================== HP移動(単独) =========================== */
%HPgo{
type( {go hp\n} ) ; /* HPへ移動 */
wait( {PRtimer},{End},{\n>}, ) ;/* タイムアウトなら終了 */
type( {1\n} ) ; /* サービスに入る */
HPread ; /* HP読込処理へ */
} ;
/* =============================== HP読込 =============================== */
%HPread{
wait( {PRtimer},{End},{\n:}, ) ;/* タイムアウトなら終了 */
case( forum,{},,,{ /* HP-ID設定有りか? */
type( forum | {\n} ) } ) ; /* HP-ID送信 */
wait( {PRtimer},{End},{\n:}, ) ;/* タイムアウトなら終了 */
case( room,{},{Inpass},,{ /* HP-PASSWORD設定有りか? */
type( room | {\n} ) } ) ; /* HP-PASSWORD送信 */
wait( {PRtimer},{End},{\nHP>}, ) ;/* タイムアウトなら終了 */
type( {set page off\n} ) ; /* ページ制御抑止 */
wait( {PRtimer},{End},{\nHP>}, ) ;/* タイムアウトなら終了 */
type( {read new\n} ) ; /* 新規読込 */
HPcheck ; /* {HP>}待ち */
type( {set page on\n} ) ; /* ページ制御戻し */
wait( {PRtimer},{End},{\nHP>}, ) ;/* タイムアウトなら終了 */
} ;
/* ============================= {HP>}待ち処理 ============================ */
%HPcheck {
loop( { /* くり返し */
wait( {Time99},{End},{HP>},) ; /* タイムアウト無し{HP>}待ち*/
loop( { /* くり返し */
wait( {1},{FALSE}, /* 1秒タイムアウトで終了 */
{HP>},{TRUE}) ;/* 再度{HP>}受信 */
im( yn ) ; } ) ; /* Noの間くり返し */
case( @laststr(3),{HP>},{FALSE},/* {HP>}のままか? */
,{TRUE} ) ; /* {HP>}以外 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ========================== MENU OFFへ ========================== */
%Chgmode{
wait( {PRtimer},{End}, /* タイムアウトなら終了 */
{\n>},{Menuoff}) ; /* エキスパートモードへ */
} ;
/* =============================== 改ページ =============================== */
%More{
type( {\n} ) ; /* 空改行 */
TRUE ; /* 繰り返す */
} ;
/* ========================= エキスパートモードへ ========================= */
%Menuoff{
type( {set men off\n} ) ; /* MENU OFF */
wait( {PRtimer},{End},{>}, ) ; /* タイムアウトなら終了 */
FALSE ; /* 繰り返さない */
} ;
/* ============================== MREAD ============================== */
%Mre{
type( {mre room:} | room | {\n} ) ;/* MREAD発行 */
Mcheck ; /* {>}待ち */
} ;
/* ============================= {>}待ち処理 ============================= */
%Mcheck{
loop( { /* くり返し */
wait( Time99,{End},{>},) ; /* タイムアウト無し{>}待ち */
loop( { /* くり返し */
wait( {1},{FALSE}, /* 1秒タイムアウトで終了 */
{のユーザーからのメッセージです-},Sendid,
{>},{TRUE} );/* 再度{>}受信 */
im( yn ) ; } ) ; /* Noの間くり返し */
case( @laststr(2),{>},{FALSE},/* {>}のままか? */
,{TRUE} ) ; /* {>}以外 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* =========================== SENDID受信 =========================== */
%Sendid{
var id[50] ; /* ID受信用 */
var lastdata[34] ; /* 受信文字列確認用 */
id := @body( @laststr(46),{-},{ } ) ; /* SEND ID読込 */
Sendrcv ; /* SEND返し */
} ;
/* ============================= SEND返し ============================= */
%Sendrcv{
lastdata := @laststr(32) ; /* SEND ID読込 */
wait( {1},) ; /* 1秒待ちループ */
case( @laststr(32),lastdata,,,{Sendrcv} ) ; /* まだ受信中か? */
type( {send } | id |
{ごめんなさい、オートパイロット中なの(_o_)。\n} ) ; /* SEND返し */
FALSE ; /* {>}待ちへ */
} ;
/* ========================== COMMAND送信 ========================== */
%Comsend{
type( forum | {\n} ) ; /* コマンド送信 */
Ccheck ; /* プロンプト待ち */
} ;
/* ============================= {>}待ち処理 ============================= */
%Ccheck {
var lastdata[34] ; /* 受信文字列確認用 */
loop( { /* くり返し */
wait( {Time99},{End}, /* タイムアウト無しプロンプト待ち */
{>},, /* > */
{>},, /* > */
{終了は行頭で/E)\n},,/* 終了は行頭で/E */
{ 2:しない)\n},, /* 2:しない) */
{ 3:期日指定)\n},,/* 3:期日指定) */
{(1:OK 2:NG)\n},, /* (1:OK 2:NG) */
{(1:OK 2:NG) \n},,/* (1:OK 2:NG) */
{3:修正)\n},, /* 3:修正) */
{ロード開始-\n},, /* ロード開始- */
{2:コメント)\n},, /* 2:コメント) */
{題名 (漢字で20文字まで)\n},,/* 題名 (漢字で20文字ま*/
{:},) ; /* : */
loop( { /* くり返し */
lastdata := @laststr(32) ;/* 現在の受信文字読込 */
wait( {1},{FALSE},/* 1秒タイムアウトで終了 */
{のユーザーからのメッセージです-},Sendid,
{>},{TRUE}, /* > */
{>},{TRUE}, /* > */
{終了は行頭で/E)\n},{TRUE},/* 終了は行頭で/E*/
{ 2:しない)\n},{TRUE}, /* 2:しない) */
{ 3:期日指定)\n},{TRUE},/* 3:期日指定) */
{(1:OK 2:NG)\n},{TRUE}, /* (1:OK 2:NG) */
{(1:OK 2:NG) \n},{TRUE},/* (1:OK 2:NG) */
{3:修正)\n},{TRUE}, /* 3:修正) */
{ロード開始-\n},{TRUE}, /* ロード開始- */
{2:コメント)\n},{TRUE}, /* 2:コメント */
{題名 (漢字で20文字まで)\n},{TRUE},/* 題名 */
{:},{TRUE} ) ; /* : */
im( yn ) ; } ) ; /* Noの間くり返し */
case( @laststr(32),lastdata,{FALSE}, /* まだ受信中か? */
,{TRUE} ) ; /* 受信中 */
im( yn ) ; } ) ; /* Noの間くり返し */
} ;
/* ============================ OFF送信処理 ============================ */
%Offsend{
type( {off\n} ) ; /* OFF送信 */
wait( {5},,{ご利用誠にありがとうございました。} ) ; /* 終了メッセージ */
Disconn ; /* 切断振り分け */
errcode := {正常に処理が完了しました。} ; /* 正常終了メッセージ */
End ; /* 終了処理 */
} ;
/* =========================== 切断振り分け処理 =========================== */
%Disconn{
case( Road,{1},{Droad1}, /* ROAD1切断 */
{2},{Droad23}, /* ROAD2切断 */
{3},{Droad23} ) ; /* ROAD3切断 */
} ;
/* ============================ ROAD1切断 ============================ */
%Droad1{
wait({3},,{00+},) ; /* NIFTY終了 */
} ;
/* ============================ ROAD2切断 ============================ */
%Droad23{
wait({3},,{*}, ) ; /* NIFTY終了 */
type({off\n}) ; /* OFF送信 */
} ;
/* =============================== 手動処理 =============================== */
%Manual{
sendtype( {Line} ) ; /* 送信単位の設定 */
loop( { /* くり返し */
wait( {Time99},{End},{ご利用誠にありがとうございました。}, ) ;
wait( {PRtimer},{FALSE},/* 終了 */
{01},{FALSE}, /* ROAD1終了 */
{HOST NAME?},{FALSE},/* ROAD23終了 */
{Enter},{TRUE} ) ; /* まだ継続 */
im( yn ) ; } ) ; /* Noの間くり返し */
Disconn ; /* 切断振り分け */
errcode := {正常に処理が完了しました。} ; /* 正常終了メッセージ */
End ; /* 終了処理 */
} ;
/* ======================== 初期化~接続~MAIL ======================== */
%CONNECT{
var logday[4] ; /* LOG名に埋め込む月日 */
Init ; /* 初期化 */
Dial ; /* 発呼 */
Roadcon ; /* FENICS接続 */
case( @nochar(@day),{4},{logday := @day;},/* 4文字の場合はそのまま */
{3},{logday := {0}|@day ;} ) ; /* 3文字の場合0を追加 */
receive( Rcvdir | /* LOG採取開始:ディレクトリ */
Logname | /* LOG名 */
logday | /* 月日 */
{.log} ) ; /* 拡張子 */
Mailchk ; /* MAIL受信 */
} ;
/* ============================ FORUM巡回 ============================ */
%FORUM{
FMread ; /* FORUM巡回へ */
} ;
/* ============================ PATIO巡回 ============================ */
%PATIO{
PMread ; /* PATIO巡回処理へ */
} ;
/* =============================== HP巡回 =============================== */
%HP{
HPset ; /* HP巡回処理へ */
} ;
/* ============================ COMMAND ============================ */
%COMMAND{
Comsend ; /* COMMAND処理へ */
} ;
/* ============================= PROMPT ============================= */
%PROMPT{
Ccheck ; /* プロンプト待ち */
} ;
/* ============================= MAIL処理 ============================= */
%MAILREAD{
Mailin ; /* MAIL処理へ */
} ;
/* ============================== MRE処理 ============================== */
%MREAD{
Mre ; /* MREAD処理へ */
} ;
/* ============================= 停止終了処理 ============================= */
%STOPEND{
select({「このまま5秒間入力が無いと、自動終了します。」},
{5},{Offsend}, /* タイムアウトで終了 */
{終了},{Offsend}, /* 通信終了 */
{手動},{Manual}) ; /* 手動に移行 */
} ;
/* =========================== MAIN振り分け =========================== */
/* 処理分岐 */
var www[24] ; /* 今日の曜日 */
var work[128] ; /* WORK */
case( @nochar( week ),{0},{root} ) ; /* 曜日指定無し毎日巡回 */
www := @body( @daylong,{ },{ } ) ; /* 曜日切り出し */
work := @head( week , www ) ; /* 指定曜日検索 */
case( week,work,,,{root} ) ; /* 検索前と一致しない場合巡回 */
/* CONNECT :初期化~接続~MAIL */
/* FORUM :FORUM巡回 */
/* HP :HP巡回 */
/* PATIO :PATIO巡回 */
/* COMMAND :ダイレクトコマンド */
/* PROMPT :プロンプト待ち */
/* MREAD :MREAD処理 */
/* MAILREAD:MAIL読み込み */
/* STOPEND :停止終了処理 */
/********************************* 終わり ***********************************/